//package functions;
//
//import java.util.ArrayList;
//
//public class Polyn extends Term {
//	ArrayList<PolynTerm> terms;
//
//	public Polyn(ArrayList<PolynTerm> terms)
//	{
//		this.terms = terms;
//		expon = 1;
//		coff = 1;
//	}
//
//	@Override
//	public double eval(double x)
//	{
//		double ret = 0;
//		for (PolynTerm term : terms)
//			ret += term.coff * Math.pow(x, term.expon);
//		ret = coff*Math.pow(ret, expon);
//		return ret;
//	}
//
//	@Override
//	public FunctionIF diff()
//	{
//		Polyn one = zeroExpTerm();
//		if(one != null)
//			return one;
//		
//		ArrayList<PolynTerm> newPoly = new ArrayList<PolynTerm>();
//		for (PolynTerm term : terms)
//			if (term.expon != 0)
//			{
//				PolynTerm newTerm = new PolynTerm(term.coff * term.expon,
//						term.expon - 1);
//				newPoly.add(newTerm);
//			}
//		Polyn diff = new Polyn(newPoly);
//
//		if (expon != 1)
//		{
//			ArrayList<FunctionIF> product = getDiff();
//			product.add(diff);
//
//			Function f = new Function();
//			f.addProductTerm(product);
//			return f;
//		} else
//			return diff;
//	}
//
//	@Override
//	@SuppressWarnings("unchecked")
//	protected Object clone()
//	{
//		return new Polyn((ArrayList<PolynTerm>) terms.clone());
//	}
//
//	@Override
//	public String toString()
//	{
//		return terms.toString();
//	}
//
//}
